トップページ > Perlについて
●Perlについて●
2021-05-25 20:24:00エラーについて
Perl単体で動かすならば、エラーも捕捉しやすいかもしれませんが、CGIになり、ホームページを出力するとエラーが非常に分かりにくいと思います。出ないか、大体「500サーバーエラー」が多かったりします。私もメモ代わりに書いておこうと思います。
1.まず、一番最初、CGIの1行目にPerlのパスを書きますが、レンタルサーバーでのPerlのパスがあっているか、確認すること。
「#!/usr/bin/perl」とCGIファイルの一行目に書くと思いますが、Perlのパス(/usr/bin/perl)はレンタルサーバーで確認してくださいね。
2.つぎにパーミッション。
CGIファイルは、大抵755か705です。
そして、読み込むlogファイル、datファイル、txtファイルは600が多いと思います。
606の場合もあります。
FTPアプリで属性などと表示される場合がありますが、それを変更します。パーミッションは別の機会で説明しています。
3.それから、シンタックスエラーがないかどうかを探ってみましょう。DOSプロンプト(Windows10などは左下の「ここに入力して検索」にcmdと入力すると、コマンドプロンプトというアプリが表示されます)で、それで、CGIファイルのシンタックエラーを探します。
CGIのあるフォルダに行き着いたら、「perl -c xxx.cgi」xxx.cgiはご自分のCGIファイル名を入力します。そしてエンターキーを押します。
何もエラーがなければ、「xxx.cgi syntax OK」と表示されます。
エラーがあれば、そのエラーの説明の行の一番最後の数字が、エラーのある行なので、Windowsアプリのメモ帳エディターでCGIファイルを開いて、その行を見てみましょう。個人的には、メモ帳より、エディターをオススメします。行の数字が表示されたり、テキストなのにいろいろな関数などを色分けして表示さてくれるので、非常に便利です。
4.そもそもHTMLの出力を忘れている…?
HTMLタグの前に、必ず必要になる文言です。
\nは、改行に当たります。必ず2つ改行を付けてください。
5.シンタックスエラーは取ったのに、思うような処理ができない。
こんな時は、処理の中で変数の値をHTMLに表示させることをオススメします。
特にfor文やfoereach文やwhile文の中で、表示させたり、if文やunless文などの条件分岐の中で表示させると、思い違いを発見しやすいですよ。
1.まず、一番最初、CGIの1行目にPerlのパスを書きますが、レンタルサーバーでのPerlのパスがあっているか、確認すること。
「#!/usr/bin/perl」とCGIファイルの一行目に書くと思いますが、Perlのパス(/usr/bin/perl)はレンタルサーバーで確認してくださいね。
2.つぎにパーミッション。
CGIファイルは、大抵755か705です。
そして、読み込むlogファイル、datファイル、txtファイルは600が多いと思います。
606の場合もあります。
FTPアプリで属性などと表示される場合がありますが、それを変更します。パーミッションは別の機会で説明しています。
3.それから、シンタックスエラーがないかどうかを探ってみましょう。DOSプロンプト(Windows10などは左下の「ここに入力して検索」にcmdと入力すると、コマンドプロンプトというアプリが表示されます)で、それで、CGIファイルのシンタックエラーを探します。
CGIのあるフォルダに行き着いたら、「perl -c xxx.cgi」xxx.cgiはご自分のCGIファイル名を入力します。そしてエンターキーを押します。
何もエラーがなければ、「xxx.cgi syntax OK」と表示されます。
エラーがあれば、そのエラーの説明の行の一番最後の数字が、エラーのある行なので、Windowsアプリのメモ帳エディターでCGIファイルを開いて、その行を見てみましょう。個人的には、メモ帳より、エディターをオススメします。行の数字が表示されたり、テキストなのにいろいろな関数などを色分けして表示さてくれるので、非常に便利です。
4.そもそもHTMLの出力を忘れている…?
print Content-type:text/html\n\n;
HTMLタグの前に、必ず必要になる文言です。
\nは、改行に当たります。必ず2つ改行を付けてください。
5.シンタックスエラーは取ったのに、思うような処理ができない。
こんな時は、処理の中で変数の値をHTMLに表示させることをオススメします。
特にfor文やfoereach文やwhile文の中で、表示させたり、if文やunless文などの条件分岐の中で表示させると、思い違いを発見しやすいですよ。
いいね:89 |